The entrenchment of data networking into the routines of modern society, as evidenced by the prevalence of the Internet, particularly the World Wide Web, has placed ever-growing demands on service providers to continually improve network performance. To meet this challenge, service providers have invested heavily in upgrading their networks to increase system capacity (i.e., bandwidth). In many circumstances, such upgrades may not be feasible economically or the physical constraints of the communication system do not permit simply “upgrading.” Accordingly, service providers have also invested in developing techniques to optimize the performance of their networks. Because much of today's networks are either operating with or are required to interface with the Transmission Control Protocol/Internet Protocol (TCP/IP) suite, attention has been focused on optimizing TCP/IP based networking operations.
TCP was designed to be very flexible and to operate over a wide variety of communication networks, including both slow and fast links, high latency links, and links with low and high error rates. However, while TCP (and other high layer protocols) works with many different kinds of links, TCP performance, in particular, the throughput possible across the TCP connection, depends largely on the characteristics of the particular link. Such flexibility is achieved at the cost of sub-optimal operation in a number of environments vis-à-vis a tailored protocol. The tailored protocol, which is usually proprietary in nature, may be more optimal, but greatly lacks flexibility in terms of networking environments and interoperability. Also, development costs of such protocols are high. An alternative to a tailored protocol is the use of a general class of network performance enhancing functions termed “TCP spoofing,” to improve TCP performance over impaired (i.e., high latency or high error rate) links.
TCP spoofing, conventionally, cannot be effectively implemented in an asymmetric bandwidth network. Asymmetric links are typically deployed for access to the Internet, as a large number of end user applications, such as web browsing, require a relatively low return channel (i.e., upstream) compared to the forward channel (i.e., downstream). Under this conventional approach, data that is otherwise available cannot be sent to the receiver because ACKs (acknowledgements) are delayed/queued on the return channel.
Another conventional technique for improving network performance is to employ an ACK reduction (filtering) mechanism by preventing overloading of low bandwidth communication channels. However, this mechanism is not only ineffective, but worsens network performance. In this conventional arrangement, the host network layer (device drivers) selectively drops TCP acknowledgements that are received from the transport layer (TCP/IP stack), potentially triggering unnecessary retransmissions.
Based on the foregoing, there is a clear need for improved approaches to optimizing network performance. There is also a need to enhance network performance, without a costly infrastructure investment. There is also a need to employ a network performance enhancing mechanism that complies with existing standards and techniques to facilitate rapid deployment. Therefore, an approach for optimizing network performance using a proxy architecture is highly desirable.